Living
	parent_type = /mob
	var/txtSpecies = "Human"
	var/list/lstAttributes=list(
		"STR" = new/Attribute("Strength","STR",10),
		"DEX" = new/Attribute("Dexterity","DEX",10),
		"CON" = new/Attribute("Constitution","CON",10),
		"INT" = new/Attribute("Intelligence","INT",10),
		"WIS" = new/Attribute("Wisdom","WIS",10),
		"CHA" = new/Attribute("Charisma","CHA",10)
	)
	var/list/lstDefenses = list(
		"FORT" = new/Defense("Fortitude","FORT",0,"CON"),
		"REF" = new/Defense("Reflex","REF",0,"DEX"),
		"WILL" = new/Defense("Will","WILL",0,"WIS")
		)
	var/list/lstClasses = list()
	var/list/lstFeats = list()
	var/Pool/HitPoints/HP = new("Hitpoints")
	var/Pool/ForcePoints/FP = new("Forcepoints")
	var/txtSize = "MEDIUM"
	var/numSpeed
	var/list/lstLanguages = list()
	New()
		..()
		for(var/txtDefense in lstDefenses)
			var/Defense/Defense = lstDefenses[txtDefense]
			Defense.livingOwner = src
	proc
		addMaxHitPoints(numVal as num, anyOrigin as anything)
			Log("[src] Max HitPoints + [numVal] ([anyOrigin])",EVENT_CHARACTER)
			HP.setMax(HP.getMax()+numVal)
		addFeat(txtFeat as text, anyOrigin as anything)
		getHeroicLevel()
			var/numRetVal = 0
			for(var/Class/classC in lstClasses)
				if(classC.isHeroic())
					numRetVal += lstClasses[classC]
			return numRetVal
		getAttribute(txtAttribute as text, txtOption as text)
			var/Attribute/Attribute = lstAttributes[txtAttribute]
			switch(txtOption)
				if("value") return Attribute.getValue()
				if("bonus") return Attribute.getBonus()
				else return Attribute
		addClass(Class/classC,numLevel as num)
			if(!numLevel) numLevel = 1
			var/Class/classWorkClass
			for(var/Class/classX in lstClasses)
				if(classX.name == classC.name) classWorkClass = classX
			if(isnull(classWorkClass))
				classWorkClass = classC
				lstClasses.Add(classWorkClass)
				lstClasses[classWorkClass] = 0
			for(var/i = 1, i<= numLevel, i++)
				classWorkClass.applyClass(src)
				lstClasses[classWorkClass] += 1

		getClassString()
			var/txtString = ""
			for(var/Class/classC in lstClasses)
				txtString += "[classC.name] [lstClasses[classC]]/"
			txtString = copytext(txtString,1,length(txtString))
			return txtString

		getDefense(txtDefense as text)
			var/numRetVal = 0
			for(var/Class/classC in lstClasses)
				numRetVal = max(numRetVal,classC.getDefenseBonus(txtDefense))
			return numRetVal

		isForceSensitive()
			if(lstFeats.Find("Force Sensitive")) return TRUE
			else return FALSE